#ifndef _H_CHANGE_EVENT_H_
#define _H_CHANGE_EVENT_H_

#include <string>
#include <sstream>
#include "Ogre.h"
using namespace std;
//using namespace Ogre;

class ChangeEvent{
protected:
	string _past_value;
	string _current_value;
	string _variation;
	string _ipValue;
	string _name;
	bool isOverflow(double,double,double);

public:
	ChangeEvent(){};
	
	void setPastValue(string past){
		this->_past_value = past;
	}
	void setCurrentValue(string current){
		this->_current_value = current;
	}
	string getVariation(){
		return this->_variation;
	};
	string getPastValue(){
		return this->_past_value;
	};
	string getCurrentValue(){
		return this->_current_value;
	};
	string getName(){
		return this->_name;
	}

	virtual void writePastValueToVariation() = 0;

	virtual void generateInterpolation() = 0;
	virtual bool checkBounding() = 0;
	virtual bool checkInterpolationValueIsZero() = 0;
	virtual void recover() = 0;
		
	
	~ChangeEvent(){};
};
#endif